{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 1,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "wHsFZo6akD8M",
        "outputId": "cd2f23b0-50a3-480a-e141-e20c83c15955"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Downloading https://www.cs.toronto.edu/~kriz/cifar-100-python.tar.gz to cifar100/cifar-100-python.tar.gz\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "100%|██████████| 169001437/169001437 [00:13<00:00, 12906980.46it/s]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Extracting cifar100/cifar-100-python.tar.gz to cifar100\n",
            "Files already downloaded and verified\n"
          ]
        }
      ],
      "source": [
        "import torch\n",
        "import torchvision\n",
        "import torchvision.transforms as transforms\n",
        "\n",
        "transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])\n",
        "batch_size = 8\n",
        "train_dataset = torchvision.datasets.cifar.CIFAR100(root='cifar100', train=True, transform=transform, download=True)\n",
        "test_dataset = torchvision.datasets.cifar.CIFAR100(root='cifar100', train=False, transform=transform, download=True)\n",
        "train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=batch_size, shuffle=True, num_workers=2)\n",
        "test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=batch_size, shuffle=False, num_workers=2)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 147
        },
        "id": "VjkCK8NykPMb",
        "outputId": "9e7e86cc-aaf7-410f-ba7b-d878d40e4ba1"
      },
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 640x480 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "torch.Size([8])\n"
          ]
        }
      ],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "import numpy as np\n",
        "\n",
        "# functions to show an image\n",
        "\n",
        "\n",
        "def imshow(img):\n",
        "    img = img / 2 + 0.5     # unnormalize\n",
        "    npimg = img.numpy()\n",
        "    plt.imshow(np.transpose(npimg, (1, 2, 0)))\n",
        "    plt.show()\n",
        "\n",
        "\n",
        "# get some random training images\n",
        "dataiter = iter(train_loader)\n",
        "# images, labels = dataiter.next()\n",
        "images, labels = next(dataiter)\n",
        "\n",
        "# show images\n",
        "imshow(torchvision.utils.make_grid(images))\n",
        "# print labels\n",
        "print(labels.shape)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "metadata": {
        "id": "QY16Ypg6KVrS"
      },
      "outputs": [],
      "source": [
        "import torch\n",
        "import torch.nn as nn\n",
        "\n",
        "class Mlp(nn.Module):\n",
        "    def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.):\n",
        "        super().__init__()\n",
        "        out_features = out_features or in_features\n",
        "        hidden_features = hidden_features or in_features\n",
        "        self.fc1 = nn.Linear(in_features, hidden_features)\n",
        "        self.act = act_layer()\n",
        "        self.fc2 = nn.Linear(hidden_features, out_features)\n",
        "        self.drop = nn.Dropout(drop)\n",
        "\n",
        "    def forward(self, x):\n",
        "        x = self.fc1(x)\n",
        "        x = self.act(x)\n",
        "        x = self.drop(x)\n",
        "        x = self.fc2(x)\n",
        "        x = self.drop(x)\n",
        "        return x\n",
        "\n",
        "class BasicConv(nn.Module):\n",
        "    def __init__(\n",
        "        self,\n",
        "        in_planes,\n",
        "        out_planes,\n",
        "        kernel_size,\n",
        "        stride=1,\n",
        "        padding=0,\n",
        "        dilation=1,\n",
        "        groups=1,\n",
        "        relu=True,\n",
        "        bn=True,\n",
        "        bias=False,\n",
        "    ):\n",
        "        super(BasicConv, self).__init__()\n",
        "        self.out_channels = out_planes\n",
        "        self.conv = nn.Conv2d(\n",
        "            in_planes,\n",
        "            out_planes,\n",
        "            kernel_size=kernel_size,\n",
        "            stride=stride,\n",
        "            padding=padding,\n",
        "            dilation=dilation,\n",
        "            groups=groups,\n",
        "            bias=bias,\n",
        "        )\n",
        "        self.bn = (\n",
        "            nn.BatchNorm2d(out_planes, eps=1e-5, momentum=0.01, affine=True)\n",
        "            if bn\n",
        "            else None\n",
        "        )\n",
        "        self.relu = nn.ReLU() if relu else None\n",
        "\n",
        "    def forward(self, x):\n",
        "        x = self.conv(x)\n",
        "        if self.bn is not None:\n",
        "            x = self.bn(x)\n",
        "        if self.relu is not None:\n",
        "            x = self.relu(x)\n",
        "        return x\n",
        "\n",
        "\n",
        "class ChannelPool(nn.Module):\n",
        "    def forward(self, x):\n",
        "        return torch.cat(\n",
        "            (torch.max(x, 1)[0].unsqueeze(1), torch.mean(x, 1).unsqueeze(1)), dim=1\n",
        "        )\n",
        "\n",
        "\n",
        "class SpatialGate(nn.Module):\n",
        "    def __init__(self):\n",
        "        super(SpatialGate, self).__init__()\n",
        "        kernel_size = 7\n",
        "        self.compress = ChannelPool()\n",
        "        self.spatial = BasicConv(\n",
        "            2, 1, kernel_size, stride=1, padding=(kernel_size - 1) // 2, relu=False\n",
        "        )\n",
        "\n",
        "    def forward(self, x):\n",
        "        x_compress = self.compress(x)\n",
        "        x_out = self.spatial(x_compress)\n",
        "        scale = torch.sigmoid_(x_out)\n",
        "        return x * scale\n",
        "\n",
        "class reweight(nn.Module):\n",
        "    def __init__(self):\n",
        "        super(reweight, self).__init__()\n",
        "        self.mlp = Mlp(6,10,3)\n",
        "\n",
        "\n",
        "    def forward(self,x1,x2,x3):\n",
        "        b,c,h,w=x1.shape\n",
        "        x1_f = x1.reshape(b, -1)\n",
        "        x2_f = x2.reshape(b, -1)\n",
        "        x3_f = x3.reshape(b, -1)\n",
        "        x1_in = torch.cat((x1_f.max(1)[0].reshape(b, -1),\n",
        "                           x1_f.mean(1).reshape(b, -1)),\n",
        "                          dim=1)\n",
        "        x2_in = torch.cat((x2_f.max(1)[0].reshape(b, -1),\n",
        "                           x2_f.mean(1).reshape(b, -1)),\n",
        "                          dim=1)\n",
        "        x3_in = torch.cat((x3_f.max(1)[0].reshape(b, -1),\n",
        "                           x3_f.mean(1).reshape(b, -1)),\n",
        "                          dim=1)\n",
        "        mlp_input=torch.cat((torch.cat((x1_in,x2_in),dim=1),x3_in),dim=1)\n",
        "        weight = self.mlp(mlp_input)\n",
        "        # weight = self.soft(weight)\n",
        "        weight = torch.sigmoid_(weight)\n",
        "\n",
        "        out = (weight[:, 0]).reshape(b, 1, 1, 1) * x1 + (weight[:, 1]).reshape(b, 1, 1, 1) * x2 + (\n",
        "        weight[:, 2]).reshape(b, 1, 1, 1) * x3\n",
        "\n",
        "        return out\n",
        "\n",
        "class TripletAttention(nn.Module):\n",
        "    def __init__(\n",
        "        self,\n",
        "        gate_channels,\n",
        "        reduction_ratio=16,\n",
        "        pool_types=[\"avg\", \"max\"],\n",
        "        no_spatial=False,\n",
        "    ):\n",
        "        super(TripletAttention, self).__init__()\n",
        "        self.ChannelGateH = SpatialGate()\n",
        "        self.ChannelGateW = SpatialGate()\n",
        "        self.no_spatial = no_spatial\n",
        "        if not no_spatial:\n",
        "            self.SpatialGate = SpatialGate()\n",
        "            # self.re = reweight()\n",
        "\n",
        "\n",
        "\n",
        "    def forward(self, x):\n",
        "        x_perm1 = x.permute(0, 2, 1, 3).contiguous()\n",
        "        x_out1 = self.ChannelGateH(x_perm1)\n",
        "        x_out11 = x_out1.permute(0, 2, 1, 3).contiguous()\n",
        "        x_perm2 = x.permute(0, 3, 2, 1).contiguous()\n",
        "        x_out2 = self.ChannelGateW(x_perm2)\n",
        "        x_out21 = x_out2.permute(0, 3, 2, 1).contiguous()\n",
        "        if not self.no_spatial:\n",
        "            x_out = self.SpatialGate(x)\n",
        "            x_out = (1 / 3) * (x_out + x_out11 + x_out21)\n",
        "            # x_out = self.re(x_out,x_out11,x_out21)\n",
        "        else:\n",
        "            x_out = (1 / 2) * (x_out11 + x_out21)\n",
        "        return x_out\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "metadata": {
        "id": "1mY2iwmCkcpA"
      },
      "outputs": [],
      "source": [
        "\n",
        "import math\n",
        "\n",
        "import torch\n",
        "import torch.nn as nn\n",
        "import torch.nn.functional as F\n",
        "from torch.nn import init\n",
        "\n",
        "\n",
        "def conv3x3(in_planes, out_planes, stride=1):\n",
        "    \"3x3 convolution with padding\"\n",
        "    return nn.Conv2d(\n",
        "        in_planes, out_planes, kernel_size=3, stride=stride, padding=1, bias=False\n",
        "    )\n",
        "\n",
        "\n",
        "class BasicBlock(nn.Module):\n",
        "    expansion = 1\n",
        "\n",
        "    def __init__(\n",
        "        self, inplanes, planes, stride=1, downsample=None, use_triplet_attention=False\n",
        "    ):\n",
        "        super(BasicBlock, self).__init__()\n",
        "        self.conv1 = conv3x3(inplanes, planes, stride)\n",
        "        self.bn1 = nn.BatchNorm2d(planes)\n",
        "        self.relu = nn.ReLU(inplace=True)\n",
        "        self.conv2 = conv3x3(planes, planes)\n",
        "        self.bn2 = nn.BatchNorm2d(planes)\n",
        "        self.downsample = downsample\n",
        "        self.stride = stride\n",
        "\n",
        "        if use_triplet_attention:\n",
        "            self.triplet_attention = TripletAttention(planes, 16)\n",
        "        else:\n",
        "            self.triplet_attention = None\n",
        "\n",
        "    def forward(self, x):\n",
        "        residual = x\n",
        "\n",
        "        out = self.conv1(x)\n",
        "        out = self.bn1(out)\n",
        "        out = self.relu(out)\n",
        "\n",
        "        out = self.conv2(out)\n",
        "        out = self.bn2(out)\n",
        "\n",
        "        if self.downsample is not None:\n",
        "            residual = self.downsample(x)\n",
        "\n",
        "        if not self.triplet_attention is None:\n",
        "            out = self.triplet_attention(out)\n",
        "\n",
        "        out += residual\n",
        "        out = self.relu(out)\n",
        "\n",
        "        return out\n",
        "\n",
        "\n",
        "class Bottleneck(nn.Module):\n",
        "    expansion = 4\n",
        "\n",
        "    def __init__(\n",
        "        self, inplanes, planes, stride=1, downsample=None, use_triplet_attention=False\n",
        "    ):\n",
        "        super(Bottleneck, self).__init__()\n",
        "        self.conv1 = nn.Conv2d(inplanes, planes, kernel_size=1, bias=False)\n",
        "        self.bn1 = nn.BatchNorm2d(planes)\n",
        "        self.conv2 = nn.Conv2d(\n",
        "            planes, planes, kernel_size=3, stride=stride, padding=1, bias=False\n",
        "        )\n",
        "        self.bn2 = nn.BatchNorm2d(planes)\n",
        "        self.conv3 = nn.Conv2d(planes, planes * 4, kernel_size=1, bias=False)\n",
        "        self.bn3 = nn.BatchNorm2d(planes * 4)\n",
        "        self.relu = nn.ReLU(inplace=True)\n",
        "        self.downsample = downsample\n",
        "        self.stride = stride\n",
        "\n",
        "        if use_triplet_attention:\n",
        "            self.triplet_attention = TripletAttention(planes * 4, 16)\n",
        "        else:\n",
        "            self.triplet_attention = None\n",
        "\n",
        "    def forward(self, x):\n",
        "        residual = x\n",
        "\n",
        "        out = self.conv1(x)\n",
        "        out = self.bn1(out)\n",
        "        out = self.relu(out)\n",
        "\n",
        "        out = self.conv2(out)\n",
        "        out = self.bn2(out)\n",
        "        out = self.relu(out)\n",
        "\n",
        "        out = self.conv3(out)\n",
        "        out = self.bn3(out)\n",
        "\n",
        "        if self.downsample is not None:\n",
        "            residual = self.downsample(x)\n",
        "\n",
        "        if not self.triplet_attention is None:\n",
        "            out = self.triplet_attention(out)\n",
        "\n",
        "        out += residual\n",
        "        out = self.relu(out)\n",
        "\n",
        "        return out\n",
        "\n",
        "\n",
        "class ResNet(nn.Module):\n",
        "    def __init__(self, block, layers, network_type, num_classes, att_type=None):\n",
        "        self.inplanes = 64\n",
        "        super(ResNet, self).__init__()\n",
        "        self.network_type = network_type\n",
        "        # different model config between ImageNet and CIFAR\n",
        "        if network_type == \"ImageNet\":\n",
        "            self.conv1 = nn.Conv2d(\n",
        "                3, 64, kernel_size=7, stride=2, padding=3, bias=False\n",
        "            )\n",
        "            self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)\n",
        "            self.avgpool = nn.AvgPool2d(7)\n",
        "        else:\n",
        "            self.conv1 = nn.Conv2d(\n",
        "                3, 64, kernel_size=3, stride=1, padding=1, bias=False\n",
        "            )\n",
        "\n",
        "        self.bn1 = nn.BatchNorm2d(64)\n",
        "        self.relu = nn.ReLU(inplace=True)\n",
        "\n",
        "        self.layer1 = self._make_layer(block, 64, layers[0], att_type=att_type)\n",
        "        self.layer2 = self._make_layer(\n",
        "            block, 128, layers[1], stride=2, att_type=att_type\n",
        "        )\n",
        "        self.layer3 = self._make_layer(\n",
        "            block, 256, layers[2], stride=2, att_type=att_type\n",
        "        )\n",
        "        self.layer4 = self._make_layer(\n",
        "            block, 512, layers[3], stride=2, att_type=att_type\n",
        "        )\n",
        "\n",
        "        self.fc = nn.Linear(512 * block.expansion, num_classes)\n",
        "\n",
        "        init.kaiming_normal_(self.fc.weight)\n",
        "        for key in self.state_dict():\n",
        "            if key.split(\".\")[-1] == \"weight\":\n",
        "                if \"conv\" in key:\n",
        "                    init.kaiming_normal_(self.state_dict()[key], mode=\"fan_out\")\n",
        "                if \"bn\" in key:\n",
        "                    if \"SpatialGate\" in key:\n",
        "                        self.state_dict()[key][...] = 0\n",
        "                    else:\n",
        "                        self.state_dict()[key][...] = 1\n",
        "            elif key.split(\".\")[-1] == \"bias\":\n",
        "                self.state_dict()[key][...] = 0\n",
        "\n",
        "    def _make_layer(self, block, planes, blocks, stride=1, att_type=None):\n",
        "        downsample = None\n",
        "        if stride != 1 or self.inplanes != planes * block.expansion:\n",
        "            downsample = nn.Sequential(\n",
        "                nn.Conv2d(\n",
        "                    self.inplanes,\n",
        "                    planes * block.expansion,\n",
        "                    kernel_size=1,\n",
        "                    stride=stride,\n",
        "                    bias=False,\n",
        "                ),\n",
        "                nn.BatchNorm2d(planes * block.expansion),\n",
        "            )\n",
        "\n",
        "        layers = []\n",
        "        layers.append(\n",
        "            block(\n",
        "                self.inplanes,\n",
        "                planes,\n",
        "                stride,\n",
        "                downsample,\n",
        "                use_triplet_attention=att_type == \"TripletAttention\",\n",
        "            )\n",
        "        )\n",
        "        self.inplanes = planes * block.expansion\n",
        "        for i in range(1, blocks):\n",
        "            layers.append(\n",
        "                block(\n",
        "                    self.inplanes,\n",
        "                    planes,\n",
        "                    use_triplet_attention=att_type == \"TripletAttention\",\n",
        "                )\n",
        "            )\n",
        "\n",
        "        return nn.Sequential(*layers)\n",
        "\n",
        "    def forward(self, x):\n",
        "        x = self.conv1(x)\n",
        "        x = self.bn1(x)\n",
        "        x = self.relu(x)\n",
        "        if self.network_type == \"ImageNet\":\n",
        "            x = self.maxpool(x)\n",
        "\n",
        "        x = self.layer1(x)\n",
        "        x = self.layer2(x)\n",
        "        x = self.layer3(x)\n",
        "        x = self.layer4(x)\n",
        "\n",
        "        if self.network_type == \"ImageNet\":\n",
        "            x = self.avgpool(x)\n",
        "        else:\n",
        "            x = F.avg_pool2d(x, 4)\n",
        "        x = x.view(x.size(0), -1)\n",
        "        x = self.fc(x)\n",
        "        return x\n",
        "\n",
        "\n",
        "def ResidualNet(network_type, depth, num_classes, att_type):\n",
        "\n",
        "    assert network_type in [\n",
        "        \"ImageNet\",\n",
        "        \"CIFAR10\",\n",
        "        \"CIFAR100\",\n",
        "    ], \"network type should be ImageNet or CIFAR10 / CIFAR100\"\n",
        "    assert depth in [18, 34, 50, 101], \"network depth should be 18, 34, 50 or 101\"\n",
        "\n",
        "    if depth == 18:\n",
        "        model = ResNet(BasicBlock, [2, 2, 2, 2], network_type, num_classes, att_type)\n",
        "\n",
        "    elif depth == 34:\n",
        "        model = ResNet(BasicBlock, [3, 4, 6, 3], network_type, num_classes, att_type)\n",
        "\n",
        "    elif depth == 50:\n",
        "        model = ResNet(Bottleneck, [3, 4, 6, 3], network_type, num_classes, att_type)\n",
        "\n",
        "    elif depth == 101:\n",
        "        model = ResNet(Bottleneck, [3, 4, 23, 3], network_type, num_classes, att_type)\n",
        "\n",
        "    return model\n",
        "\n",
        "# if __name__==\"__main__\":\n",
        "#     net=ResidualNet(\"CIFAR100\",34,10,\"TripletAttention\")\n",
        "#     print(net)\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "otA9CIgdnXfW",
        "outputId": "5af91dc4-677f-42c0-dfd6-de5ca63563ef"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "ResNet(\n",
            "  (conv1): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "  (relu): ReLU(inplace=True)\n",
            "  (layer1): Sequential(\n",
            "    (0): BasicBlock(\n",
            "      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "    (1): BasicBlock(\n",
            "      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "  )\n",
            "  (layer2): Sequential(\n",
            "    (0): BasicBlock(\n",
            "      (conv1): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(64, 128, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "    (1): BasicBlock(\n",
            "      (conv1): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "  )\n",
            "  (layer3): Sequential(\n",
            "    (0): BasicBlock(\n",
            "      (conv1): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(128, 256, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "    (1): BasicBlock(\n",
            "      (conv1): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "  )\n",
            "  (layer4): Sequential(\n",
            "    (0): BasicBlock(\n",
            "      (conv1): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (downsample): Sequential(\n",
            "        (0): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)\n",
            "        (1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      )\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "    (1): BasicBlock(\n",
            "      (conv1): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn1): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (relu): ReLU(inplace=True)\n",
            "      (conv2): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)\n",
            "      (bn2): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
            "      (triplet_attention): TripletAttention(\n",
            "        (ChannelGateH): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (ChannelGateW): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "        (SpatialGate): SpatialGate(\n",
            "          (compress): ChannelPool()\n",
            "          (spatial): BasicConv(\n",
            "            (conv): Conv2d(2, 1, kernel_size=(7, 7), stride=(1, 1), padding=(3, 3), bias=False)\n",
            "            (bn): BatchNorm2d(1, eps=1e-05, momentum=0.01, affine=True, track_running_stats=True)\n",
            "          )\n",
            "        )\n",
            "      )\n",
            "    )\n",
            "  )\n",
            "  (fc): Linear(in_features=512, out_features=100, bias=True)\n",
            ")\n"
          ]
        }
      ],
      "source": [
        "device=\"cuda\"\n",
        "net=ResidualNet(\"CIFAR100\",18,100,\"TripletAttention\").to(device)\n",
        "# net=ResidualNet(\"CIFAR100\",18,100,None).to(device)\n",
        "print(net)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "35VI01P_kqal",
        "outputId": "b90f2e71-ec69-4623-b17d-f207a0fa3936"
      },
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "6250\n"
          ]
        }
      ],
      "source": [
        "import torch.optim as optim\n",
        "\n",
        "criterion = nn.CrossEntropyLoss()\n",
        "optimizer = torch.optim.Adam(net.parameters(), lr=0.0005)\n",
        "print(len(train_loader))"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "metadata": {
        "id": "ck0do7nrmNTQ"
      },
      "outputs": [],
      "source": []
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "metadata": {
        "id": "xKlx2mCxlE02"
      },
      "outputs": [],
      "source": [
        "from tqdm import tqdm\n",
        "def train(epoch):\n",
        "    net.train()\n",
        "    # Loop over each batch from the training set\n",
        "    train_tqdm = tqdm(train_loader, desc=\"Epoch \" + str(epoch))\n",
        "    for batch_idx, (data, target) in enumerate(train_tqdm):\n",
        "        # Copy data to GPU if needed\n",
        "        data = data.to(device)\n",
        "        target = target.to(device)\n",
        "        # Zero gradient buffers\n",
        "        optimizer.zero_grad()\n",
        "        # Pass data through the network\n",
        "        output = net(data)\n",
        "        # Calculate loss\n",
        "        loss = criterion(output, target)\n",
        "        # Backpropagate\n",
        "        loss.backward()\n",
        "        # Update weights\n",
        "        optimizer.step()  # w - alpha * dL / dw\n",
        "        train_tqdm.set_postfix({\"loss\": \"%.3g\" % loss.item()})\n",
        "\n",
        "def validate(lossv,top1AccuracyList,top5AccuracyList):\n",
        "    net.eval()\n",
        "    val_loss = 0\n",
        "    top1Correct = 0\n",
        "    top5Correct = 0\n",
        "    for index,(data, target) in enumerate(test_loader):\n",
        "        data = data.to(device)\n",
        "        labels = target.to(device)\n",
        "        outputs = net(data)\n",
        "        val_loss += criterion(outputs, labels).data.item()\n",
        "        _, top1Predicted = torch.max(outputs.data, 1)\n",
        "        top5Predicted = torch.topk(outputs.data, k=5, dim=1, largest=True)[1]\n",
        "        top1Correct += (top1Predicted == labels).cpu().sum().item()\n",
        "        label_resize = labels.view(-1, 1).expand_as(top5Predicted)\n",
        "        top5Correct += torch.eq(top5Predicted, label_resize).view(-1).cpu().sum().float().item()\n",
        "\n",
        "    val_loss /= len(test_loader)\n",
        "    lossv.append(val_loss)\n",
        "\n",
        "    top1Acc=100*top1Correct / len(test_loader.dataset)\n",
        "    top5Acc=100*top5Correct / len(test_loader.dataset)\n",
        "    top1AccuracyList.append(top1Acc)\n",
        "    top5AccuracyList.append(top5Acc)\n",
        "    \n",
        "    print('\\nValidation set: Average loss: {:.4f}, Top1Accuracy: {}/{} ({:.0f}%) Top5Accuracy: {}/{} ({:.0f}%)\\n'.format(\n",
        "        val_loss, top1Correct, len(test_loader.dataset), top1Acc,top5Correct, len(test_loader.dataset), top5Acc))\n",
        "#     accuracy = 100. * correct.to(torch.float32) / len(testloader.dataset)\n",
        "#     accv.append(accuracy)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "pTWz8B3Dl9gu",
        "outputId": "ae96570e-fc5c-4461-a33a-8f56c97bc0a0"
      },
      "outputs": [
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 0: 100%|██████████| 6250/6250 [04:12<00:00, 24.77it/s, loss=4.29]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.5403, Top1Accuracy: 3415/10000 (34%) Top5Accuracy: 6691.0/10000 (67%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 1: 100%|██████████| 6250/6250 [03:59<00:00, 26.15it/s, loss=2.49]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 1.9427, Top1Accuracy: 4715/10000 (47%) Top5Accuracy: 7779.0/10000 (78%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 2: 100%|██████████| 6250/6250 [04:07<00:00, 25.26it/s, loss=2.57]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 1.7320, Top1Accuracy: 5259/10000 (53%) Top5Accuracy: 8233.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 3: 100%|██████████| 6250/6250 [04:01<00:00, 25.89it/s, loss=1.13]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 1.6204, Top1Accuracy: 5637/10000 (56%) Top5Accuracy: 8411.0/10000 (84%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 4: 100%|██████████| 6250/6250 [04:03<00:00, 25.67it/s, loss=0.466]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 1.6430, Top1Accuracy: 5609/10000 (56%) Top5Accuracy: 8383.0/10000 (84%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 5: 100%|██████████| 6250/6250 [04:01<00:00, 25.89it/s, loss=0.619]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 1.7789, Top1Accuracy: 5650/10000 (56%) Top5Accuracy: 8403.0/10000 (84%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 6: 100%|██████████| 6250/6250 [04:01<00:00, 25.93it/s, loss=0.617]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 1.8715, Top1Accuracy: 5793/10000 (58%) Top5Accuracy: 8361.0/10000 (84%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 7: 100%|██████████| 6250/6250 [04:01<00:00, 25.85it/s, loss=0.129]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.0618, Top1Accuracy: 5669/10000 (57%) Top5Accuracy: 8325.0/10000 (83%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 8: 100%|██████████| 6250/6250 [03:58<00:00, 26.23it/s, loss=0.409]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.1232, Top1Accuracy: 5642/10000 (56%) Top5Accuracy: 8275.0/10000 (83%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 9: 100%|██████████| 6250/6250 [03:59<00:00, 26.13it/s, loss=0.226]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.2611, Top1Accuracy: 5554/10000 (56%) Top5Accuracy: 8226.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 10: 100%|██████████| 6250/6250 [04:03<00:00, 25.68it/s, loss=0.106]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.3617, Top1Accuracy: 5621/10000 (56%) Top5Accuracy: 8252.0/10000 (83%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 11: 100%|██████████| 6250/6250 [03:59<00:00, 26.08it/s, loss=0.181]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.2282, Top1Accuracy: 5711/10000 (57%) Top5Accuracy: 8295.0/10000 (83%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 12: 100%|██████████| 6250/6250 [03:55<00:00, 26.52it/s, loss=0.221]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.4969, Top1Accuracy: 5577/10000 (56%) Top5Accuracy: 8230.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 13: 100%|██████████| 6250/6250 [03:56<00:00, 26.45it/s, loss=0.0559]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.4566, Top1Accuracy: 5613/10000 (56%) Top5Accuracy: 8206.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 14: 100%|██████████| 6250/6250 [04:04<00:00, 25.51it/s, loss=0.0612]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.4555, Top1Accuracy: 5658/10000 (57%) Top5Accuracy: 8259.0/10000 (83%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 15: 100%|██████████| 6250/6250 [03:58<00:00, 26.16it/s, loss=0.0642]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.5842, Top1Accuracy: 5573/10000 (56%) Top5Accuracy: 8153.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 16: 100%|██████████| 6250/6250 [03:56<00:00, 26.45it/s, loss=0.00196]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.5695, Top1Accuracy: 5513/10000 (55%) Top5Accuracy: 8187.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Epoch 17: 100%|██████████| 6250/6250 [03:52<00:00, 26.83it/s, loss=0.00478]\n"
          ]
        },
        {
          "metadata": {
            "tags": null
          },
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "\n",
            "Validation set: Average loss: 2.5597, Top1Accuracy: 5636/10000 (56%) Top5Accuracy: 8199.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 18: 100%|██████████| 6250/6250 [03:53<00:00, 26.73it/s, loss=0.0227]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.6584, Top1Accuracy: 5666/10000 (57%) Top5Accuracy: 8217.0/10000 (82%)\n",
            "\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stderr",
          "text": [
            "Epoch 19: 100%|██████████| 6250/6250 [03:58<00:00, 26.25it/s, loss=0.00277]\n"
          ]
        },
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "\n",
            "Validation set: Average loss: 2.6656, Top1Accuracy: 5640/10000 (56%) Top5Accuracy: 8219.0/10000 (82%)\n",
            "\n",
            "Finished Training\n"
          ]
        }
      ],
      "source": [
        "lossv = []\n",
        "top1AccuracyList = []   # top1准确率列表\n",
        "top5AccuracyList = []   # top5准确率列表\n",
        "max_epoch = 20\n",
        "for epoch in range(max_epoch):  # loop over the dataset multiple times\n",
        "    train(epoch)\n",
        "    with torch.no_grad():\n",
        "        validate(lossv,top1AccuracyList,top5AccuracyList)\n",
        "        \n",
        "print('Finished Training')"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "# New Section"
      ],
      "metadata": {
        "id": "DW_Ya2WyDhrj"
      }
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "metadata": {
        "id": "5qEPmaZO1NU3"
      },
      "outputs": [],
      "source": []
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "id": "Z1-D3LkhvzDq",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 925
        },
        "outputId": "5f9c958d-2e71-45af-e8a6-83789b3b147d"
      },
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Text(0.5, 1.0, 'validation top5 accuracy')"
            ]
          },
          "metadata": {},
          "execution_count": 9
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 500x300 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 500x300 with 1 Axes>"
            ],
            "image/png": "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\n"
          },
          "metadata": {}
        },
        {
          "output_type": "display_data",
          "data": {
            "text/plain": [
              "<Figure size 500x300 with 1 Axes>"
            ],
            "image/png": "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R48e6Ny5c71joubFbk+6J+Hh4XB1dcW6deuwbt069OnTR6+bqbrlc2dLZ9myZQ3a3xNPPIH09HRs2LBBt6y4uBjfffedXjlD+xVC4P/+7/9q1GlnZweg6su0LlKpFIMHD8bmzZv1ptNnZWXhhx9+QP/+/WttIRmrtpieeOIJaDQafPnll3rLP/vsM0gkEkRFRektP3DggN646pUrV7B582YMHjxYd44MdX+eOnUKW7ZsweDBg2FhUfvXRH3Ps0KhwMCBA7Fy5UqkpaXprave1sLCAiNGjMDWrVtx9OjRGvuqLledkG6/ZKOoqAirV6+uNc76xK1SqRAbG6tXbvDgwXBwcMCiRYtqXK5w52c6KioK7u7u+Pjjj7Fnzx62+swcW350T6ysrDBq1Cj89NNPKCoqwqeffqq33tHREQMHDsSSJUtQUVGB++67D3/88QeSk5MbtL+XXnoJX375JSZMmIBjx47B29sb//3vf2Fra6tXLiQkBIGBgXj77bdx7do1ODo64n//+5/BsbbqCSHTpk1DREQEpFIpxo0bZ3D/H374IXbu3In+/fvjtddeg6WlJb799luUlZVhyZIlDTomQ2qLaejQoXj00Ufx73//GykpKejWrRv++OMPbN68GdOnT9clhmpdunRBRESE3qUOALBgwQJdmbFjx8LGxgb9+vWDh4cHzp8/j++++w62trZYvHhxnXEac54///xz9O/fHw8++CCmTJmCgIAApKSk4LfffsPJkycBAB999BH++OMPhIWFYcqUKejUqRMyMjKwfv16/P3333B2dsbgwYPh6+uLyZMnY+bMmZBKpVi5ciUUCkWNxFqbwYMHQyaTYejQoXj55ZdRWFiI//znP/Dw8EBGRoaunKOjIz777DO8+OKL6N27N5555hm4uLjg1KlTKC4u1ku4VlZWGDduHL788ktIpVKMHz++XrGQiZhghim1Mjt37hQAhEQiEVeuXKmx/urVq2LkyJHC2dlZODk5iTFjxoj09PQalxHU51IHIaqm6w8bNkzY2toKd3d38cYbb4jt27fXmFZ+/vx5ER4eLuzt7YW7u7t46aWXxKlTpwQAERsbqytXWVkpXn/9daFQKIREItGbRn9njEIIcfz4cRERESHs7e2Fra2tePTRR8X+/fv1ylQfy51T9nft2lWv6e91xVRQUCBmzJghlEqlsLKyEh07dhSffPKJ3tT76thjYmLEmjVrRMeOHYVcLhc9evSose//+7//E3369BGurq7C0tJSeHt7i+eee04kJibWGWO1+p5nIYQ4e/as7rNgbW0tgoODxZw5c/TKpKamigkTJgiFQiHkcrlo3769iImJEWVlZboyx44dE6GhoUImkwlfX1+xdOnSWi91GDJkiMG4t2zZIh544AFhbW0t/P39xccffyxWrlxZo47qsv369RM2NjbC0dFR9OnTR/z444816jx8+LAAIAYPHlyvc0emIxGiBYy8E5HRJBIJYmJianSRUtM5deoUunfvju+//x7PP/+8qcOhOnDMj4iokfznP/+Bvb09Ro0aZepQ6C445kdEdI+2bt2qGyudOnWqbsISmS8mPyKie/T6668jKysLTzzxhN5kIjJfHPMjIqI2h2N+RETU5jD5ERFRm9Mqxvy0Wi3S09Ph4ODAm8gSEbVhQggUFBRAqVTWeXeiVpH80tPTG+2eikRE1PJduXIF7dq1q3V9q0h+1Tf4vXLlSqPdW5GIiFoetVoNHx+fGo/9ulOrSH7VXZ2Ojo5MfkREdNchME54ISKiNofJj4iI2hwmPyIianOY/IiIqM1h8iMiojaHyY+IiNocJr825J9MNVJzi6DV8l7mRNS2tYrr/OjuVu1Lxvyt5wEAdjIpQrwd0cnbAZ28HdHJ2xEhXg6wlTXfx6FSo0WGqhRX80pwn7MNfN1sm23fRERMfm1A/IUsvP9rVeKzkkpQVK7BsdQ8HEvN05WRSIAAN7ubyfBWUvR2sm7Q/VKFEMgvrkDajWKk3SjGlbxiXLn5/7QbxUjPL4Xmthaov5stBgYpMKCjAn0D3WAv50eTiJpOq3ien1qthpOTE1QqFe/wcofz6Wo89c1+FJdrMK63Dz4c0QWXc4pwIUON8xlqXMgowPl0NXIKywxu72xrhU5ejnpJsaOnPeSWUpRWaHA1r+RWYsutSnJpN0pw5UYxCssq64xNJrWAl5M10vNLUHlbIrSSSvCgrwsGBikQFqTA/d6OsLDgDcuJ6O7qmw+Y/FqxLHUpRny1DxmqUjzcwQ2rXugDK6nhYd7sgjJcyFDflhTVSMou0mudVbO0kMDFTobsAsMJ83YeDnL4utrC19UWPjdf1e89HOSwsJCgoLQCB5JysTcxG3sv5iDtRrFeHW52MvTv6I6BHRUYEOQODwfrhp0QImr1mPzauOLySjz97QGcvaZGoMIOv7z2MJxsrIyqo7RCg0vXC3E+/VZCvJChhrr0VovOTiatkdR8XG3g62qLdi62sLaSGh17Sk4R/krMxp6LOTiQlIOico3e+k7ejhgYVJUMe/m7QG5p/D6IqHVi8mvDNFqBV9Ycw87zWXCzk2Hjaw832oQSIQSu5ZfgRlE57nO2gaudrEmfoVheqcXxtDz8dbNVeOaaSm+9jZUUD7V31Y0XBirs+ExHojaMya8NW/jbefznr2TILC3w40uh6OnnauqQGk1uYRn+vpSDPRez8VdiTo2uV3d7GXr5uaJ3gCt6+7vgfm9HWNbS1UtErQ+TXxu19lAq/r3xLADg8/E9MKyb0sQRNR0hBP7JLMDei9nYm5iNIyl5KK/U6pWxk0nxoJ/LzYTogh4+LrCRsZuUqLVi8muD9l7MxgurjkCjFXjr8SC8PqijqUNqVmWVGpy5qsKRlDwcSbmBoyk39MYngarJOl3uc0KfAFf09ndFLz8XuNjJTBQxETU2Jr825mJWAUZ/vR8FZZUY1eM+/L+nu7X5sS+tViAhqwBHU27gcEoejiTfQKa6tEa5jh72um7S3v6uaOfCC+6JWiomvzYku6AMI77ah2v5JegT4Ir/Tu7DGZAGCCFwNa8ER1Ju4EjKDRxOvoGk7KIa5ZRO1ujf0R1RXb3xcKA7ZJYcMyRqKZj82ojSCg3GfXcQJ6/kw9/NFhtfe5jdeEbILSzD0dSqVuGR1DycvabSu7bR0doSj9/vhSe6eqF/R3f+UUFk5pj82gCtVuD1H0/gtzMZcLa1wi+v9kN7hb2pw2rRissrcSw1D3+cy8L2c5l6s0kd5JYIv98TUV28MDBI0aBrGImoaTH5tQGf7kjAl7suwUoqwX8nh+Kh9m6mDqlV0WgFjqXmYduZDPx+NgNZ6luJ0E4mxWOdPDGkqxfCgjza5AzS8kotLCTgpSRkVpj8Wrn1R69g5obTAIBPx3TDUz3bmTii1k2rFThxJQ/bzmTi9zMZSFfdmjhjYyXFYyEeiOrqhcdCPJr16RjNSQiBlNxi7E64jj0Xs3Hwci4sLSzwVM92mNjPHwHudqYOkYjJrzU7kJSLCSsPoUIjMPXRDng7ItjUIbUpWq3Aqav5+P1sJradycDVvBLdOmsrCzwSVJUIB3XybPFPpygur8SBpFzsuZiN3QnZNe67ertHgxWY2M8fAzsqeCNyMpkmSX4ajQbz58/HmjVrkJmZCaVSiUmTJuG9996DRCJBRUUF3nvvPWzbtg2XL1+Gk5MTwsPDsXjxYiiVtV9sPX/+fCxYsEBvWXBwMP755596xdWWkl9SdiFGfb0fqpIKPPmANz4f14NfNCYkhMCZaypsO1OVCG9PDjJLC4QFKRDZ2QvhnTzhZGvcvVVNQQiBS9cLdcnucPINlGtu3TjASipBb39XhAUpEBaswHV1GVbvT8GfCddR/U3S3t0OE/r6YXTPdnCwNv9jptalSZLfRx99hKVLl2L16tXo3Lkzjh49ihdeeAELFy7EtGnToFKp8NRTT+Gll15Ct27dkJeXhzfeeAMajQZHjx6ttd758+djw4YNiIuL0y2ztLSEu7t7ox5sS3ejqBwjv96H1Nxi9PB1xo8vPcRJF2ZECIHzGWpsO5OBbWcykZxz6zIKSwsJ+nVwR2RnLwzu7Al3e7kJI9VXUFqBfZeqWnd7L2bjWn6J3vp2LjZ4JFiBsCAP9At0g52B1mxKThG+P5CK9UevoODmo6zs5ZZ4qmc7TOjrx4lY1GyaJPk9+eST8PT0xIoVK3TLRo8eDRsbG6xZs8bgNkeOHEGfPn2QmpoKX19fg2Xmz5+PTZs24eTJk/UNRU9bSH5llRo8//8dxuGUG2jnYoNNMQ+b1Rco6ROi6gL7bWcysf1sBi5mFerWWUiA3v6uiOrihYguXvB2smn22C5kFNxs3V3HsdQ8vecpyiwt8FB7N4QFKfBIsALt3et/s/Ciskr8cvwqVu1P0buGMixIgUkP+yOsBXSJFpRW4I9zWdhzMRuDO3viyQda7y0CW6P65gOjBiT69euH7777DhcvXkRQUBBOnTqFv//+G0uXLq11G5VKBYlEAmdn5zrrTkxMhFKphLW1Nfr27YtFixbVmizLyspQVnZr5p1arTbmMFocIQRm/e8MDqfcgIPcErGTejPxmTmJRIIQL0eEeDnizceDkJRdiO1nM7HjXCZOX1XhUPINHEq+gflbz6O7jzOiunghsosX/Nwad9JIaYUGSdmFuJhVgItZhbiYWYAz11S4fscNwQPc7XRdmQ8FuDV49qqd3BLP9/XHcw/54e9LOVi1r6pLdM/FbOy5mI2Am12iT5lZl2hphQa7E65j88l0/PnPdZTdvEfsllPp+ONcFj4Y3qVFdFtT/RnV8tNqtfjXv/6FJUuWQCqVQqPRYOHChZg9e7bB8qWlpXj44YcREhKCtWvX1lrv77//jsLCQgQHByMjIwMLFizAtWvXcPbsWTg4ONQob2iMEECrbfl9Hp+IpTsvQmohwaoXemNAR4WpQ6J7cDWvGDvOZWH72QwcTc3D7b+BnbwddYmwo4d9vVtclRotUnKLcTGrAAmZBVX/ZhUgJacIBp5HDGsrC/QLdL/Znalo9KR7u9Tcqi7Rn49eQcHNe63ayaRVXaL9/BFooi7RSo0W+5NyseVUOnaczdR11wJAe4Uduvs4Y/PJdGi0At5O1vh/Y7qhX4f6DcWQ6TRJt+dPP/2EmTNn4pNPPkHnzp1x8uRJTJ8+HUuXLsXEiRP1ylZUVGD06NG4evUqdu/ebVRSys/Ph5+fH5YuXYrJkyfXWG+o5efj49Mqk9+WU+mY9uMJAMCiUV0xvo/h1jC1TNfVpfjjfBa2n83Egcu5eneXaa+wQ2RnL0R18UaX+xwhkUig1VY9TzEhsyq5VSe7y9lFehNTbudobYkQL0d09LRHsJcDgj0d0M3HudnHi4vKKvHLiWtYvT8Fl67f6gYeGKTApH5+eKi9W5NfJiKEwPG0PGw5mY7fzmQgp7Bct87byRrDuikxtJsSnZVV5/tEWh5mrDuJlNyqiUyT+wdgZkQwx9rNWJMkPx8fH8yaNQsxMTG6ZR9++CHWrFmjNzOzoqICTz/9NC5fvow///wTbm7GX3zdu3dvhIeHY9GiRXct21rH/Co1WoR+FI/conJMGdge/3qik6lDoiaUV1SOuAtVifCvxBy9ZHafsw3cHeRIzCpA8R1Ptq9mK5Oio6cDgj3tEeTpgCBPBwR7OcDDQW5WNzkXQmDfpVys2p+M+H+u67V873O2QaCHPToo7BHoYXfzX3u43cNDk6sffbXlVDq2nEzXm9DjaifDE129MKzbfejl52JwPLK4vBIf/nYBPxxKAwAEedpj2dgeuF/Zer5rWpMmGfMrLi6GhYX+3RykUim02lu/pNWJLzExEbt27WpQ4issLERSUhKef/55o7dtTQ5evoHconK42snwDq/la/Vc7GQY08sHY3r5oKC0ArsSsrH9bAZ2/VM1A7P6S1smtUCgh31VkrvZkgvydMB9zjZmP5kEqBoP7d/RHf07uiMttxjfH0jBppPXkFNYrjvOvRez9bZxtrVCoOJWUgxU2KODhz3audhCWssxp+UWY8upa9hyKl1vwpGdTIqIzl4Y2l2J/h3cYXWXO9TYyizx0ciuCO/kgXc2nMbFrEIM/+pvvDU4GC8NaF/r/lsjIQTyiyt0P6f0m6/icg00WlH1EkL3f60QqNRU/avRClQaWHZrG0Cj1WJ6eBCe6Ord5MdiVPIbOnQoFi5cCF9fX3Tu3BknTpzA0qVLER0dDaAq8T311FM4fvw4fv31V2g0GmRmZgIAXF1dIZNV3XB50KBBGDlyJKZOnQoAePvttzF06FD4+fkhPT0d8+bNg1Qqxfjx4xvzWFuc385kAAAiOnvxFlJtjIO1FYZ1U2JYNyVKKzTYdykH5ZVaBHk5wM/VttV8HnzdbPHek/fjvSfvx42iciRlF+LS9UIkXS/EpexCJGUX4mpeCfKLK3AsNQ/HUvP0tpdZWqC9e1UyDPSwR6DCDrmF5dhyKh0nr+TfKie1wKMhCgzrdh8GdfJoULflYyGe2DF9IGb9cgY7z2dh8e//4M9/rmPp091azWOwKjRaZKpKdYntWl4J0lUluJZfimt5xUjPL0VJheGeh8aSV1x+90KNwKhuz4KCAsyZMwcbN27E9evXoVQqMX78eMydOxcymQwpKSkICAgwuO2uXbvwyCOPAAD8/f0xadIkzJ8/HwAwbtw47N27F7m5uVAoFOjfvz8WLlyIwMDAesXVGrs9KzVa9F4Yh7ziCqx9MRQPc6Cd2qiScg2Sc4puJcab/17OKUJ5peFxTqDqkpKHO7hjaDclIjp7wcmmcWZrCiHw89ErWLD1PIrLNXCQW2L+sM4Y9eB9ZtW9fLtKjRb5JRXIKypHblE58orKkV1YdjPJ3UpsWQWlqE9GUDjIoXS2wX3O1lA62cDe2hKWFhJYWEgglUggtah6GVqme922zOJmWalEgvYKe3g5WTf4WHl7sxbur8RsPL/iMFztZDj8r0Gt5i99osai0QpcyyupkRQtpRJEdvbCkAeUUDg03SVBqblFePPnU7rW6BNdvbBwRNcmf6SYEAIFZZV6iexGUTnyistxo6gCN4rKcKOoAnnF5boyqpKKetcvs7TAfc42UN5MbPe52NxMdFUvLydrs57w0yRjftR8tt3s8ozswi5PIkOkFhL4utnC180Wj4Z4NPv+/dzssG7KQ/hmTxKWxSVi25lMHE3JwydjuiEsqHEuRyqr1ODsNTVOpOXheFoeTl1R4XpBKSo0DWuzONtawdVWBle7qpfS2Qbtbia36gTnZidrEWPH94rJzwxVaLTYfrZqrPTJZhj4JaKGsZRaYOpjHREW5IHp604gKbsIE1cexsS+fpgV1cnomwVkqUtx/ObY5vG0PJy9pq71EhZbmRQutjK42cvgcjOh6b+30nvvZGPFP6Rvw+Rnhg4k5SKvuAJudjL0CXA1dThEdBdd2znh19cHYPHvF7D6QCpWH0jF35dysGxsD3Rt52RwmwqNFufT1Tielofjafk4nppX476qQNXlGA/6OqOHrwse9HWBv7stXGxlZt312BIw+ZkhdnkStTw2MikWDO+Cxzp5Yub6U0jKLsLIr/dhenhHvBIWiPySiqpWXVoeTqTm4/S1fJRW6LfqLCRAsJcjHvR1xoO+Lujp5wI/N1uznUjTknHCi5mpuDnLM7+4Aj+8GMrbKRG1QHlF5fj3pjPYdqZq+MLJxsrgpBMnGytdonvQzwXdfJxb/DMgTY0TXlqo/Um5yC+ugLs9uzyJWioXOxm+euZBbDxxDfM2n4OqpAISCdDRwx49/Vx0XZjt3e3axOQSc8TkZ2a2nWaXJ1FrIJFIMOrBdggLUiApuwgh3g5wNKMnWbR1TH5mpEKjxY7zVd0kzXF7HyJqem72crjxEWRmh00LM3J7l2dogPH3RCUiovph8jMjv51OBwBEdfFuUzfLJSJqbkx+ZqJCo8WOc1kA2OVJRNTUmPzMxL5LOVCVVMDdXs5ZnkRETYzJz0z8dnOWZ1QXL3Z5EhE1MSY/M1BeqcWOc1WzPIc8wC5PIqKmxuRnBvYl5UBdWgmFgxy9/dnlSUTU1Jj8zAC7PImImheTn4mVV2rxR3WXJ2d5EhE1CyY/E9t3qarL08NBjl7s8iQiahZMfib2K7s8iYiaHZOfCZVXavHH+epZnkoTR0NE1HYYlfw0Gg3mzJmDgIAA2NjYIDAwEB988AFufySgEAJz586Ft7c3bGxsEB4ejsTExLvW/dVXX8Hf3x/W1tYIDQ3F4cOHjT+aFubvS9koqO7y9HMxdThERG2GUcnv448/xvLly/Hll1/iwoUL+Pjjj7FkyRJ88cUXujJLlizB559/jm+++QaHDh2CnZ0dIiIiUFpaWmu969atw5tvvol58+bh+PHj6NatGyIiInD9+vWGH1kLUN3l+URXbz7Ti4ioGRn1JPcnn3wSnp6eWLFihW7Z6NGjYWNjgzVr1kAIAaVSibfeegtvv/02AEClUsHT0xOrVq3CuHHjDNYbGhqK3r1748svvwQAaLVa+Pj44PXXX8esWbPuGldLfJJ7WaUGvT6MQ0FpJda/0pfX9xERNYL65gOjWn79+vVDfHw8Ll68CAA4deoU/v77b0RFRQEAkpOTkZmZifDwcN02Tk5OCA0NxYEDBwzWWV5ejmPHjultY2FhgfDw8Fq3KSsrg1qt1nu1NH8n5qCgtBKejnL09GWXJxFRczLqYbazZs2CWq1GSEgIpFIpNBoNFi5ciGeffRYAkJlZNXnD09NTbztPT0/dujvl5ORAo9EY3Oaff/4xuM2iRYuwYMECY0I3O7cubGeXJxFRczOq5ffzzz9j7dq1+OGHH3D8+HGsXr0an376KVavXt1U8Rk0e/ZsqFQq3evKlSvNuv97VVapwc7zVY8vepL38iQianZGtfxmzpyJWbNm6cbuunbtitTUVCxatAgTJ06El5cXACArKwve3re+1LOystC9e3eDdbq7u0MqlSIrK0tveVZWlq6+O8nlcsjlcmNCNyt/XcxBQVklvByt8SC7PImImp1RLb/i4mJYWOhvIpVKodVqAQABAQHw8vJCfHy8br1arcahQ4fQt29fg3XKZDL07NlTbxutVov4+Phat2npfjtzs8uzqxe7PImITMColt/QoUOxcOFC+Pr6onPnzjhx4gSWLl2K6OhoAIBEIsH06dPx4YcfomPHjggICMCcOXOgVCoxYsQIXT2DBg3CyJEjMXXqVADAm2++iYkTJ6JXr17o06cPli1bhqKiIrzwwguNd6RmorRCg7ibXZ68lycRkWkYlfy++OILzJkzB6+99hquX78OpVKJl19+GXPnztWVeeedd1BUVIQpU6YgPz8f/fv3x/bt22Ftba0rk5SUhJycHN37sWPHIjs7G3PnzkVmZia6d++O7du315gE0xr8lcguTyIiUzPqOj9z1ZKu85v+0wlsOpmO6IcDMHfo/aYOh4ioVWmS6/zo3pRWaBB3oequNUMeMDyZh4iImh6TXzPaezEbhWWV8HayRg8fdnkSEZkKk18z2naG9/IkIjIHTH7NpLTi1oXtT3CWJxGRSTH5NZM9F7NRVK6B0skaPXycTR0OEVGbxuTXTLbpLmxnlycRkakx+TUDvQvbeS9PIiKTY/JrBrsTqro873O2YZcnEZEZYPJrBrouzy5ekEjY5UlEZGpMfk2s6sJ2dnkSEZkTJr8mtjvhOopvdnl2Z5cnEZFZYPJrYr+dqXqC/RNd2eVJRGQumPyaUGmFBvG6Lk+liaMhIqJqTH5N6PYuz27tnEwdDhER3cTk14R+PV01y3PIA97s8iQiMiNMfk2kpFyD+OrHF/FenkREZoXJr4nsTriOkgoN2rnY4AF2eRIRmRUmvyby680L24d0ZZcnEZG5YfJrAiXlGvx5s8uTjy8iIjI/RiU/f39/SCSSGq+YmBikpKQYXCeRSLB+/fpa65w0aVKN8pGRkfd8YKa05yK7PImIzJmlMYWPHDkCjUaje3/27Fk8/vjjGDNmDHx8fJCRkaFX/rvvvsMnn3yCqKioOuuNjIxEbGys7r1cLjcmLLNzPl0NAOjfwZ1dnkREZsio5KdQKPTeL168GIGBgQgLC4NEIoGXl5fe+o0bN+Lpp5+Gvb19nfXK5fIa27ZkqTeKAQAB7nYmjoSIiAxp8JhfeXk51qxZg+joaIOtm2PHjuHkyZOYPHnyXevavXs3PDw8EBwcjFdffRW5ubl1li8rK4NardZ7mZOU3Krk5+dma+JIiIjIkAYnv02bNiE/Px+TJk0yuH7FihXo1KkT+vXrV2c9kZGR+P777xEfH4+PP/4Ye/bsQVRUlF736p0WLVoEJycn3cvHx6ehh9EkUnOLAAB+bmz5ERGZI4kQQjRkw4iICMhkMmzdurXGupKSEnh7e2POnDl46623jKr38uXLCAwMRFxcHAYNGmSwTFlZGcrKynTv1Wo1fHx8oFKp4OjoaNyBNDJVcQW6vf8HAOD8+xGwlRnVs0xERPdArVbDycnprvmgQS2/1NRUxMXF4cUXXzS4fsOGDSguLsaECROMrrt9+/Zwd3fHpUuXai0jl8vh6Oio9zIXqTeqWn0KBzkTHxGRmWpQ8ouNjYWHhweGDBlicP2KFSswbNiwGhNk6uPq1avIzc2Ft3fLvD6uerzPn+N9RERmy+jkp9VqERsbi4kTJ8LSsmbL5tKlS9i7d2+trcKQkBBs3LgRAFBYWIiZM2fi4MGDSElJQXx8PIYPH44OHTogIiLC2NDMQmoOx/uIiMyd0ckvLi4OaWlpiI6ONrh+5cqVaNeuHQYPHmxwfUJCAlQqFQBAKpXi9OnTGDZsGIKCgjB58mT07NkTf/31V4u91o8tPyIi89fgCS/mpL4DnM1hzDf7cSQlD5+P74Fh3fgAWyKi5tSkE16odmz5ERGZPya/RlRUVonsgqpLMPxcOeZHRGSumPwaUerNVp+LrRWcbK1MHA0REdWGya8Rpd28xs+XMz2JiMwak18j4ngfEVHLwOTXiHhPTyKiloHJrxGlsuVHRNQiMPk1olQ+yoiIqEVg8mskpRUapKtKALDbk4jI3DH5NZKrecUQArCXW8LNTmbqcIiIqA5Mfo2kusvT19XW4JPtiYjIfDD5NRLdZQ7uHO8jIjJ3TH6NhJc5EBG1HEx+jYQXuBMRtRxMfo0k7WbLz5c3tCYiMntMfo2gQqPF1byqyxw45kdEZP6Y/BpBen4JKrUCcksLeDpYmzocIiK6Cya/RnD7nV0sLHiZAxGRuWPyawSpHO8jImpRmPwaAWd6EhG1LEYlP39/f0gkkhqvmJgYAMAjjzxSY90rr7xSZ51CCMydOxfe3t6wsbFBeHg4EhMTG35EJqC7xs+dLT8iopbAqOR35MgRZGRk6F47d+4EAIwZM0ZX5qWXXtIrs2TJkjrrXLJkCT7//HN88803OHToEOzs7BAREYHS0tIGHI5p8FFGREQti6UxhRUKhd77xYsXIzAwEGFhYbpltra28PLyqld9QggsW7YM7733HoYPHw4A+P777+Hp6YlNmzZh3LhxxoRnElqtQOqNmxNeOOZHRNQiNHjMr7y8HGvWrEF0dLTejZzXrl0Ld3d3dOnSBbNnz0ZxcXGtdSQnJyMzMxPh4eG6ZU5OTggNDcWBAwdq3a6srAxqtVrvZSqZ6lKUV2phaSGB0pmXORARtQRGtfxut2nTJuTn52PSpEm6Zc888wz8/PygVCpx+vRpvPvuu0hISMAvv/xisI7MzEwAgKenp95yT09P3TpDFi1ahAULFjQ09EaVcnO8z8fVFpZSzh8iImoJGpz8VqxYgaioKCiVSt2yKVOm6P7ftWtXeHt7Y9CgQUhKSkJgYOC9RXqb2bNn480339S9V6vV8PHxabT6jZF226OMiIioZWhQUyU1NRVxcXF48cUX6ywXGhoKALh06ZLB9dVjg1lZWXrLs7Ky6hw3lMvlcHR01HuZCi9zICJqeRqU/GJjY+Hh4YEhQ4bUWe7kyZMAAG9vb4PrAwIC4OXlhfj4eN0ytVqNQ4cOoW/fvg0JrdnxUUZERC2P0clPq9UiNjYWEydOhKXlrV7TpKQkfPDBBzh27BhSUlKwZcsWTJgwAQMHDsQDDzygKxcSEoKNGzcCACQSCaZPn44PP/wQW7ZswZkzZzBhwgQolUqMGDHi3o+uGaTyIbZERC2O0WN+cXFxSEtLQ3R0tN5ymUyGuLg4LFu2DEVFRfDx8cHo0aPx3nvv6ZVLSEiASqXSvX/nnXdQVFSEKVOmID8/H/3798f27dthbW3+MyeFELy1GRFRCyQRQghTB3Gv1Go1nJycoFKpmnX8L7ugDL0XxkEiAf75IBJyS2mz7ZuIiGqqbz7g3Px7UN3qUzrZMPEREbUgTH73gON9REQtE5PfPeB4HxFRy8Tkdw94jR8RUcvE5HcPeI0fEVHLxOR3D3RPc2DLj4ioRWHya6D84nLkF1cAYPIjImppmPwaqHqmp4eDHLayBt8fnIiITIDJr4GqH2Xkz/E+IqIWh8mvgXSPMmKXJxFRi8Pk10C8zIGIqOVi8msgXuZARNRyMfk1UPVlDhzzIyJqeZj8GqCorBLZBWUAOOZHRNQSMfk1QPVlDi62VnCysTJxNEREZCwmvwbgeB8RUcvG5NcAt8b72OVJRNQSMfk1gO5RRmz5ERG1SEx+DZCSw5YfEVFLZlTy8/f3h0QiqfGKiYnBjRs38PrrryM4OBg2Njbw9fXFtGnToFKp6qxz0qRJNeqLjIy8p4NqahzzIyJq2Yy6I/ORI0eg0Wh078+ePYvHH38cY8aMQXp6OtLT0/Hpp5/i/vvvR2pqKl555RWkp6djw4YNddYbGRmJ2NhY3Xu5XG7kYTSf0goNMtSlAPg0ByKilsqo5KdQKPTeL168GIGBgQgLC4NEIsH//vc/3brAwEAsXLgQzz33HCorK2FpWfuu5HI5vLy8jAzdNK7mFUMIwF5uCTc7manDISKiBmjwmF95eTnWrFmD6OhoSCQSg2VUKhUcHR3rTHwAsHv3bnh4eCA4OBivvvoqcnNzGxpWk6se7/Nzs631uImIyLw1+EF0mzZtQn5+PiZNmmRwfU5ODj744ANMmTKlznoiIyMxatQoBAQEICkpCf/6178QFRWFAwcOQCqVGtymrKwMZWVluvdqtbqhh2E03taMiKjla3DyW7FiBaKioqBUKmusU6vVGDJkCO6//37Mnz+/znrGjRun+3/Xrl3xwAMPIDAwELt378agQYMMbrNo0SIsWLCgoaHfk1uXOXC8j4iopWpQt2dqairi4uLw4osv1lhXUFCAyMhIODg4YOPGjbCyMu72X+3bt4e7uzsuXbpUa5nZs2dDpVLpXleuXDH6GBqKjzIiImr5GtTyi42NhYeHB4YMGaK3XK1WIyIiAnK5HFu2bIG1tbXRdV+9ehW5ubnw9vautYxcLjfZjFBe5kBE1PIZ3fLTarWIjY3FxIkT9SayqNVqDB48GEVFRVixYgXUajUyMzORmZmpd3lESEgINm7cCAAoLCzEzJkzcfDgQaSkpCA+Ph7Dhw9Hhw4dEBER0QiH17gqNFpcyysBwDE/IqKWzOiWX1xcHNLS0hAdHa23/Pjx4zh06BAAoEOHDnrrkpOT4e/vDwBISEjQXfgulUpx+vRprF69Gvn5+VAqlRg8eDA++OADs7zWLz2/BJVaAbmlBTwczC8+IiKqH6OT3+DBgyGEqLH8kUceMbj8TreXsbGxwY4dO4wNwWSqx/v83GxhYcHLHIiIWire29MIHO8jImodmPyMkMqZnkRErQKTnxH4KCMiotaByc8IvMaPiKh1YPKrJ61WII23NiMiahWY/OopU12K8kotLC0k8HYy/uJ9IiIyH0x+9ZRyc7zPx9UWllKeNiKilozf4vWUets1fkRE1LIx+dXTrcscON5HRNTSMfnVk+4yB1e2/IiIWjomv3rSXebgzuRHRNTSMfnVgxCCtzYjImpFmPzqIaewHMXlGlhIgHYuNqYOh4iI7hGTXz1Ut/q8nWwgt5SaOBoiIrpXTH71wPE+IqLWhcmvHtI43kdE1Kow+dUDb2hNRNS6MPnVw61r/NjyIyJqDZj86oFjfkRErQuT313kF5dDVVIBgHd3ISJqLYxKfv7+/pBIJDVeMTExAIDS0lLExMTAzc0N9vb2GD16NLKysuqsUwiBuXPnwtvbGzY2NggPD0diYmLDj6iRVd/T08NBDluZpYmjISKixmBU8jty5AgyMjJ0r507dwIAxowZAwCYMWMGtm7divXr12PPnj1IT0/HqFGj6qxzyZIl+Pzzz/HNN9/g0KFDsLOzQ0REBEpLSxt4SI2r+lFGvKE1EVHrYVRTRqFQ6L1fvHgxAgMDERYWBpVKhRUrVuCHH37AY489BgCIjY1Fp06dcPDgQTz00EM16hNCYNmyZXjvvfcwfPhwAMD3338PT09PbNq0CePGjWvocTUaPsqIiKj1afCYX3l5OdasWYPo6GhIJBIcO3YMFRUVCA8P15UJCQmBr68vDhw4YLCO5ORkZGZm6m3j5OSE0NDQWrcBgLKyMqjVar1XU9E9ysidLT8iotaiwclv06ZNyM/Px6RJkwAAmZmZkMlkcHZ21ivn6emJzMxMg3VUL/f09Kz3NgCwaNEiODk56V4+Pj4NPYy74qOMiIhanwYnvxUrViAqKgpKpbIx46mX2bNnQ6VS6V5Xrlxpsn2l8CG2REStToOmL6ampiIuLg6//PKLbpmXlxfKy8uRn5+v1/rLysqCl5eXwXqql2dlZcHb21tvm+7du9e6f7lcDrlc3pDQjVJYVomcwjIAgC/H/IiIWo0GtfxiY2Ph4eGBIUOG6Jb17NkTVlZWiI+P1y1LSEhAWloa+vbta7CegIAAeHl56W2jVqtx6NChWrdpTmk3W32udjI42ViZOBoiImosRic/rVaL2NhYTJw4EZaWtxqOTk5OmDx5Mt58803s2rULx44dwwsvvIC+ffvqzfQMCQnBxo0bAQASiQTTp0/Hhx9+iC1btuDMmTOYMGEClEolRowYce9Hd4843kdE1DoZ3e0ZFxeHtLQ0REdH11j32WefwcLCAqNHj0ZZWRkiIiLw9ddf65VJSEiASqXSvX/nnXdQVFSEKVOmID8/H/3798f27dthbW3dgMNpXLyhNRFR6yQRQghTB3Gv1Go1nJycoFKp4Ojo2Gj1zv7lNH48fAVvDOqIGY8HNVq9RETUNOqbD3hvzzqk5PACdyKi1ojJrw6pfIgtEVGrxORXi9IKDTLUVfcX5ZgfEVHrwuRXi6t5xRACcJBbwtVOZupwiIioETH51aJ6vM/XzRYSicTE0RARUWNi8qsFH2VERNR6MfnVgo8yIiJqvZj8apF6gze0JiJqrZj8aqG7tRlbfkRErQ6TnwEVGi2u5pUAYMuPiKg1YvIzID2/BBqtgLWVBTwcmv7RSURE1LyY/AyovqG1n6sdLCx4mQMRUWvD5GcAx/uIiFo3Jj8Dqi9w523NiIhaJyY/A9Ju8IbWREStGZOfASm8wJ2IqFVj8ruDRiuQlssL3ImIWjMmvztkqktRrtHCSiqBt5O1qcMhIqImwOR3h+qZnj4utrCU8vQQEbVGRn+7X7t2Dc899xzc3NxgY2ODrl274ujRo7r1EonE4OuTTz6ptc758+fXKB8SEtKwI7pH1Te05mUOREStl6UxhfPy8vDwww/j0Ucfxe+//w6FQoHExES4uLjoymRkZOht8/vvv2Py5MkYPXp0nXV37twZcXFxtwKzNCq0RsNHGRERtX5GZZiPP/4YPj4+iI2N1S0LCAjQK+Pl5aX3fvPmzXj00UfRvn37ugOxtKyxrSmkcaYnEVGrZ1S355YtW9CrVy+MGTMGHh4e6NGjB/7zn//UWj4rKwu//fYbJk+efNe6ExMToVQq0b59ezz77LNIS0szJrRGk8KZnkRErZ5Rye/y5ctYvnw5OnbsiB07duDVV1/FtGnTsHr1aoPlV69eDQcHB4waNarOekNDQ7Fq1Sps374dy5cvR3JyMgYMGICCggKD5cvKyqBWq/VejUEIwVubERG1ARIhhKhvYZlMhl69emH//v26ZdOmTcORI0dw4MCBGuVDQkLw+OOP44svvjAqqPz8fPj5+WHp0qUGW43z58/HggULaixXqVRwdHQ0al+3u15Qij4L42EhAS58EAm5pbTBdRERUfNTq9VwcnK6az4wquXn7e2N+++/X29Zp06dDHZR/vXXX0hISMCLL75ozC4AAM7OzggKCsKlS5cMrp89ezZUKpXudeXKFaP3YUj1eJ/S2YaJj4ioFTMq+T388MNISEjQW3bx4kX4+fnVKLtixQr07NkT3bp1MzqowsJCJCUlwdvb2+B6uVwOR0dHvVdj4HgfEVHbYFTymzFjBg4ePIiPPvoIly5dwg8//IDvvvsOMTExeuXUajXWr19fa6tv0KBB+PLLL3Xv3377bezZswcpKSnYv38/Ro4cCalUivHjxzfgkBqO431ERG2DUZc69O7dGxs3bsTs2bPx/vvvIyAgAMuWLcOzzz6rV+6nn36CEKLW5JWUlIScnBzd+6tXr2L8+PHIzc2FQqFA//79cfDgQSgUigYcUsPdavkx+RERtWZGTXgxV/Ud4Lyb4V/+jVNXVfj2+Z6I6Gz6aw6JiMg4TTLhpbXjo4yIiNoGJr+bSis06OTtAG8na/i6MvkREbVmprmBphmytpLipyl9TR0GERE1A7b8iIiozWHyIyKiNofJj4iI2hwmPyIianOY/IiIqM1h8iMiojaHyY+IiNqcVnGdX/Ud2hrrobZERNQyVeeBu925s1Ukv+onvvv4+Jg4EiIiMgcFBQVwcnKqdX2ruLG1VqtFeno6HBwcIJFITB1OvanVavj4+ODKlSuN9kzC5tBS4wZabuyMu/m11NjbetxCCBQUFECpVMLCovaRvVbR8rOwsEC7du1MHUaDNeYDeZtTS40baLmxM+7m11Jjb8tx19Xiq8YJL0RE1OYw+RERUZvD5GdCcrkc8+bNg1wuN3UoRmmpcQMtN3bG3fxaauyMu35axYQXIiIiY7DlR0REbQ6THxERtTlMfkRE1OYw+RERUZvD5NdEFi1ahN69e8PBwQEeHh4YMWIEEhIS6txm1apVkEgkei9ra+tmirjK/Pnza8QQEhJS5zbr169HSEgIrK2t0bVrV2zbtq2ZotXn7+9fI3aJRIKYmBiD5U11vvfu3YuhQ4dCqVRCIpFg06ZNeuuFEJg7dy68vb1hY2OD8PBwJCYm3rXer776Cv7+/rC2tkZoaCgOHz7cbHFXVFTg3XffRdeuXWFnZwelUokJEyYgPT29zjob8nlr7NgBYNKkSTXiiIyMvGu9pjznAAx+3iUSCT755JNa62yOc16f77/S0lLExMTAzc0N9vb2GD16NLKysuqst6G/G4Yw+TWRPXv2ICYmBgcPHsTOnTtRUVGBwYMHo6ioqM7tHB0dkZGRoXulpqY2U8S3dO7cWS+Gv//+u9ay+/fvx/jx4zF58mScOHECI0aMwIgRI3D27NlmjLjKkSNH9OLeuXMnAGDMmDG1bmOK811UVIRu3brhq6++Mrh+yZIl+Pzzz/HNN9/g0KFDsLOzQ0REBEpLS2utc926dXjzzTcxb948HD9+HN26dUNERASuX7/eLHEXFxfj+PHjmDNnDo4fP45ffvkFCQkJGDZs2F3rNebz1hSxV4uMjNSL48cff6yzTlOfcwB68WZkZGDlypWQSCQYPXp0nfU29Tmvz/ffjBkzsHXrVqxfvx579uxBeno6Ro0aVWe9DfndqJWgZnH9+nUBQOzZs6fWMrGxscLJyan5gjJg3rx5olu3bvUu//TTT4shQ4boLQsNDRUvv/xyI0dmvDfeeEMEBgYKrVZrcL05nG8AYuPGjbr3Wq1WeHl5iU8++US3LD8/X8jlcvHjjz/WWk+fPn1ETEyM7r1GoxFKpVIsWrSoWeI25PDhwwKASE1NrbWMsZ+3xmAo9okTJ4rhw4cbVY85nvPhw4eLxx57rM4ypjjnd37/5efnCysrK7F+/XpdmQsXLggA4sCBAwbraOjvRm3Y8msmKpUKAODq6lpnucLCQvj5+cHHxwfDhw/HuXPnmiM8PYmJiVAqlWjfvj2effZZpKWl1Vr2wIEDCA8P11sWERGBAwcONHWYdSovL8eaNWsQHR1d583OzeF83y45ORmZmZl659TJyQmhoaG1ntPy8nIcO3ZMbxsLCwuEh4eb9OegUqkgkUjg7OxcZzljPm9Naffu3fDw8EBwcDBeffVV5Obm1lrWHM95VlYWfvvtN0yePPmuZZv7nN/5/Xfs2DFUVFTonb+QkBD4+vrWev4a8rtRFya/ZqDVajF9+nQ8/PDD6NKlS63lgoODsXLlSmzevBlr1qyBVqtFv379cPXq1WaLNTQ0FKtWrcL27duxfPlyJCcnY8CAAbrHRt0pMzMTnp6eess8PT2RmZnZHOHWatOmTcjPz8ekSZNqLWMO5/tO1efNmHOak5MDjUZjVj+H0tJSvPvuuxg/fnydNyk29vPWVCIjI/H9998jPj4eH3/8Mfbs2YOoqChoNBqD5c3xnK9evRoODg537Tps7nNu6PsvMzMTMpmsxh9GdZ2/hvxu1KVVPNXB3MXExODs2bN37Vfv27cv+vbtq3vfr18/dOrUCd9++y0++OCDpg4TABAVFaX7/wMPPIDQ0FD4+fnh559/rtdflOZixYoViIqKglKprLWMOZzv1qiiogJPP/00hBBYvnx5nWXN5fM2btw43f+7du2KBx54AIGBgdi9ezcGDRrUbHHci5UrV+LZZ5+966St5j7n9f3+a25s+TWxqVOn4tdff8WuXbuMfuySlZUVevTogUuXLjVRdHfn7OyMoKCgWmPw8vKqMUMrKysLXl5ezRGeQampqYiLi8OLL75o1HbmcL6rz5sx59Td3R1SqdQsfg7ViS81NRU7d+40+tE0d/u8NZf27dvD3d291jjM6ZwDwF9//YWEhASjP/NA057z2r7/vLy8UF5ejvz8fL3ydZ2/hvxu1IXJr4kIITB16lRs3LgRf/75JwICAoyuQ6PR4MyZM/D29m6CCOunsLAQSUlJtcbQt29fxMfH6y3buXOnXouqucXGxsLDwwNDhgwxajtzON8BAQHw8vLSO6dqtRqHDh2q9ZzKZDL07NlTbxutVov4+Phm/TlUJ77ExETExcXBzc3N6Dru9nlrLlevXkVubm6tcZjLOa+2YsUK9OzZE926dTN626Y453f7/uvZsyesrKz0zl9CQgLS0tJqPX8N+d24W5DUBF599VXh5OQkdu/eLTIyMnSv4uJiXZnnn39ezJo1S/d+wYIFYseOHSIpKUkcO3ZMjBs3TlhbW4tz5841W9xvvfWW2L17t0hOThb79u0T4eHhwt3dXVy/ft1gzPv27ROWlpbi008/FRcuXBDz5s0TVlZW4syZM80W8+00Go3w9fUV7777bo115nK+CwoKxIkTJ8SJEycEALF06VJx4sQJ3azIxYsXC2dnZ7F582Zx+vRpMXz4cBEQECBKSkp0dTz22GPiiy++0L3/6aefhFwuF6tWrRLnz58XU6ZMEc7OziIzM7NZ4i4vLxfDhg0T7dq1EydPntT7zJeVldUa990+b80Re0FBgXj77bfFgQMHRHJysoiLixMPPvig6NixoygtLa01dlOf82oqlUrY2tqK5cuXG6zDFOe8Pt9/r7zyivD19RV//vmnOHr0qOjbt6/o27evXj3BwcHil19+0b2vz+9GfTH5NREABl+xsbG6MmFhYWLixIm699OnTxe+vr5CJpMJT09P8cQTT4jjx483a9xjx44V3t7eQiaTifvuu0+MHTtWXLp0qdaYhRDi559/FkFBQUImk4nOnTuL3377rVljvt2OHTsEAJGQkFBjnbmc7127dhn8bFTHptVqxZw5c4Snp6eQy+Vi0KBBNY7Hz89PzJs3T2/ZF198oTuePn36iIMHDzZb3MnJybV+5nft2lVr3Hf7vDVH7MXFxWLw4MFCoVAIKysr4efnJ1566aUaSczcznm1b7/9VtjY2Ij8/HyDdZjinNfn+6+kpES89tprwsXFRdja2oqRI0eKjIyMGvXcvk19fjfqi480IiKiNodjfkRE1OYw+RERUZvD5EdERG0Okx8REbU5TH5ERNTmMPkREVGbw+RHRERtDpMfERG1OUx+RETU5jD5ERFRm8PkR0REbQ6THxERtTn/P3L43Q1/QVexAAAAAElFTkSuQmCC\n"
          },
          "metadata": {}
        }
      ],
      "source": [
        "import matplotlib.pyplot as plt\n",
        "import numpy as np\n",
        "# 绘制曲线\n",
        "plt.figure(figsize=(5, 3))\n",
        "plt.plot(np.arange(1, max_epoch + 1), lossv)\n",
        "plt.title('validation loss')\n",
        "\n",
        "plt.figure(figsize=(5,3))\n",
        "plt.plot(np.arange(1, max_epoch + 1), top1AccuracyList)\n",
        "plt.title('validation top1 accuracy')\n",
        "\n",
        "plt.figure(figsize=(5,3))\n",
        "plt.plot(np.arange(1, max_epoch + 1), top5AccuracyList)\n",
        "plt.title('validation top5 accuracy')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "metadata": {
        "id": "fyWGvlbHup5w"
      },
      "outputs": [],
      "source": [
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "source": [],
      "metadata": {
        "id": "tWPk-yOuUsuw"
      },
      "execution_count": null,
      "outputs": []
    }
  ],
  "metadata": {
    "accelerator": "GPU",
    "colab": {
      "provenance": [],
      "gpuType": "T4"
    },
    "gpuClass": "standard",
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}